package io;

import java.io.*;

/**
 * 使用缓冲字符输入流按行读取字符串
 */
public class BRDemo {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream(
                "./src/main/java/io/FISDemo.java");
        InputStreamReader isr = new InputStreamReader(fis);
        BufferedReader br = new BufferedReader(isr);
        String line;
        /*
            BufferedReader提供了读取一行字符串的操作
            String readLing()
            该方法会返回一行字符串(返回的字符串不含有最后的换行符).
            当返回值为null时说明流读取到了末尾.
            需要注意,readLine方法并非是真正是调用一次读取一行字符串,因为缓冲流会
            一次性读取若干字符到内部缓冲区(块读取操作),所以每次调用readLine
            仅是返回缓冲区的一行文本数据,当都返回过后会再次读取若干字符到
            缓冲区,如此往复直到读取完毕(流读取到末尾)
         */
        while ((line = br.readLine())!=null){
            System.out.println(line);
        }
        br.close();
    }
}
